package cn.frame.platform.common.util;

import java.beans.PropertyEditorSupport;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import org.springframework.util.StringUtils;

/**
 * 日期转换属性编辑器
 * @date 2012-11-27 15:49:39
 * @author llliang
 *
 */
public class DateConvertEditor extends PropertyEditorSupport {
	private SimpleDateFormat datetimeFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
	private SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
	
	 public void setAsText(String text) throws IllegalArgumentException {  
	        if (StringUtils.hasText(text)) {  
	            try {  
	                if (text.indexOf(":") == -1 && text.length() == 10) {  
	                    setValue(this.dateFormat.parse(text));  
	                } else if (text.indexOf(":") > 0 && text.length() == 19) {  
	                    setValue(this.datetimeFormat.parse(text));  
	                }else{  
	                    throw new IllegalArgumentException("Could not parse date, date format is error ");  
	                }  
	            } catch (ParseException ex) {  
	                IllegalArgumentException iae = new IllegalArgumentException("Could not parse date: " + ex.getMessage());  
	                iae.initCause(ex);  
	                throw iae;  
	            }  
	        } else {  
	            setValue(null);  
	        }  
	    }  

//	public void setAsText(String text) throws IllegalArgumentException {
//		if (StringUtils.hasText(text)) {
//			try {
//				if (text.indexOf(":") == -1 && text.length() == 10) {
//					setValue(this.dateFormat.parse(text));
//				} else if (text.indexOf(":") > 0 && text.length() == 19) {
//					setValue(this.datetimeFormat.parse(text));
//				}else{
//					throw new IllegalArgumentException("Could not parse date, date format is error ");
//				}
//			} catch (ParseException ex) {
//				IllegalArgumentException iae = new IllegalArgumentException("Could not parse date: " + ex.getMessage());
//				iae.initCause(ex);
//				throw iae;
//			}
//		} else {
//			setValue(null);
//		}
//	}
}
